package br.usjt.teste;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import br.usjt.dominio.Cliente;
import br.usjt.dominio.ClienteRepositorio;
import br.usjt.servico.DAOFactory;
import br.usjt.servico.IClienteDAO;

public class UC04AlteraCliente {

	static IClienteDAO clienteDAO;
	static ClienteRepositorio clienteRepositorio;
	static Cliente umCliente;
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		clienteDAO = DAOFactory.getDAOFactory(DAOFactory.MYSQL).getClienteDAO();
		clienteDAO.cadastra("58905389007", 	"carlos manoel", "r. taquari", "11111111");
		clienteRepositorio = new ClienteRepositorio();
		umCliente = new Cliente();
		umCliente.setCPF("58905389007");
		umCliente.setNome("aaaaaa");
		umCliente.setTelefone("bbbbbb");
		umCliente.setEndereco("cccccc");
	
	}
	/**
	 * Objetivo- verificar o comportamento da funcao alterar dados do cliente com sucesso
	 * Pre-condicao - o cpf esta cadastrado
	 */
	@Test
	public void CT01UC04FBAlterarDados_com_sucesso() {
		assertEquals("qt de registros alterados =", 1, clienteDAO.altera("58905389007","aaaaaa","bbbbbbb","2222222"));
	}
	/**
	 * teste na camada de dominio
	 * 
	 * @throws Exception
	 */
	@Test
	public void CT02UC04FBAlterarDados_com_sucesso(){
		clienteDAO.cadastra("58905389007", "carlos manoel", "r. taquari","11111111");
		assertEquals("true", clienteRepositorio.altera(umCliente));
	}
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		clienteDAO.exclui("58905389007");
	}
}
